Interated circuits are used in a wide variety of applications. For example, servers are used to provide a variety of processing and storage functions in computer systems. Application Specific Integrated Circuits (ASICs), microprocessor chips, memory chips, and other integrated circuit chips of various forms provide much of the control and functionality of the servers. At various times, however, integrated circuits and chipsets can fail during operation due to any of many possible reasons.
In some servers and other computer devices, one or more microprocessors or other circuits can be used to monitor the operation of the server (or other device). This “service processor” can monitor the operation of the server and determine if and when a failure occurs in the server, and whether that failure is caused by the hardware or software of the server itself, or by some other cause.
When a failure does occur in the server system, the service processor can check if it is an uncorrectable error, i.e., an error which requires servicing by the server operator or provider, and which cannot be easily or immediately be corrected by the service processor. If the error is uncorrectable, each ASIC, microprocessor, or other integrated circuit processing chip of the server can lock the state of all of its internal latches at the time of the error. The service processor can then dump or save the data contents of certain registers of the locked chips, so that the data in these registers can be later examined to help determine the nature of the error and the source or cause of the error. The service processor dumps this register data contents to the service processor's memory.
Some problems can occur with the above situation where the service processor dumps an integrated circuit chip's registers after an uncorrectable error. One problem is that the service processor has a finite memory capacity used mainly for its own functions, and thus cannot dump and save the contents of even a substantial number of the latches of the integrated circuit chip. Another problem is that the service processor is programmed beforehand to dump specific registers of the integrated circuit chip. The registers chosen to be dumped by the service processor are usually determined and selected based on previous debugging sessions of the integrated circuit chip, e.g., particular errors were found in earlier debugging stages and the pertinent registers for those found errors are chosen to be dumped for future chip failures. Therefore, there is a chance that when a new type of failure occurs in the integrated circuit chip, not all of the correct latches and registers of the chip that will lead to a successful determination of the error will have been dumped by the service processor.